home *** CD-ROM | disk | FTP | other *** search
- /* FILE: Demo_draw.c
- */
- #include "Demo.h"
-
- #define X 20
-
- static DrawFN(sp, x, y) /* Draws sp and returns the pens horz.coord. */
- char *sp; /* Pascal string (i.e. Function Name) */
- register int x, y;
- {
- SetFont(monaco, 9, bold);
- MoveTo(x, y);
- DrawString(sp);
- x += StringWidth(sp) + 5;
- TextFace(plain);
- return(x);
- }
-
- DrawPage() /* Draws the 'Page' UserItem (dlogItem #5) in dlogW */
- { /* It gets called by DrawUserItem() when dlogW needs updated */
- auto Str255 s1_Str255, s2_Str255;
- auto Rect tRect;
-
- EraseRect(&uiRect[0]); /* Erase the userItem's viewRect */
- switch (pageNo) { /* Draw the current page */
- case 1:
- for (a_int = 0; a_int < 2; ++a_int) {
- tRect.top = 30;
- tRect.left = 220 * a_int + 90;
- tRect.bottom = 62;
- tRect.right = tRect.left + 32;
- PlotIcon(&tRect, GetIcon(512));
- }
- SetFont(newYork, 18, plain);
- PStrDraw(1, "\p<<< MacTutor >>>", CEN, 50);
- SetFont(newYork, 12, bold);
- PStrDraw(1, "\pVol.3 No.11", CEN, NL1);
- SetFont(newYork, 18, plain);
- PStrDraw(1, "\p• Pascal String Library Demo •", CEN, 110);
- SetFont(newYork, 14, bold);
- PStrDraw(1, "\pThe following pages will explain the", CEN, 150);
- PStrDraw(1, "\p'How To's and the 'Results Of' using", CEN, NL1);
- PStrDraw(1, "\peach function in the Pascal String Library.", CEN, NL1);
- break;
- case 2:
- PStrDraw(1, "\p(count, s, h, v, ...)", DrawFN("\pPStrDraw", X, 20), 20);
- PStrDraw(1, "\pcount - # of { s, h, v} argument sets to follow.", X, NL1);
- PStrDraw(1, "\ps - Pascal string to draw", X, NL1);
- PStrDraw(1, "\ph - Horizontal coordinate", X, NL1);
- PStrDraw(1, "\pv - Vertical coordinate", X, NL1);
- PStrDraw(1, "\p... - 2-9 additional sets of { s, h, v}", X, NL1);
- PStrDraw(1, "\pPStrDraw() draws 1 to 10 Pascal strings at specified locations in", X, NL2);
- PStrDraw(1, "\pthe current GrafPort. It Offers auto-centering and New-Line modes.", X, NL1);
- PStrDraw(1, "\pIf h == 0 then it uses the last (current) h position.", X, NL1);
- PStrDraw(1, "\pIf v == 0 then it uses the last (current) v position.", X, NL1);
- PStrDraw(1, "\pIf x < 0 string is centered inside portRect. If y < 0", X, NL1);
- PStrDraw(1, "\pstring is offset -y lines from last (current) v position.", X, NL1);
- PStrDraw(1, "\pOtherwise, h and v represent the desired x and y coordinates.", X, NL1);
- PStrDraw(2, "\p<< This was drawn by... >>", CEN, NL1, "\p...Calling: ", X, NL1);
- PStrDraw(1, "\pPStrDraw(1, \"\\p<< This was drawn by... >>\", CEN, NL1);", CUR, CUR);
- break;
- case 3:
- PStrDraw(1, "\p(font, size, face)", DrawFN("\pSetFont", X, 20), 20);
- PStrDraw(1, "\pfont - Font number", X, NL2);
- PStrDraw(1, "\psize - Font size", X, NL1);
- PStrDraw(1, "\pface - Font style", X, NL1);
- PStrDraw(1, "\pSetFont() sets the txFont, txSize and", X, NL2);
- PStrDraw(1, "\ptxFace fields of the current GrafPort.", X, NL1);
- PStrDraw(2, "\pCalling:", X, NL2, "\pSetFont(monaco, 9, bold);", X+40, NL1);
- PStrDraw(2, "\pProduces Same Result As:", X, NL2, "\pTextFont(monaco);", X+40, NL1);
- PStrDraw(2,"\pTextSize(9);", X+40, NL1, "\pTextFace(bold);", X+40, NL1);
- break;
- case 4:
- PStrDraw(1, "\p(type, numPtr, s, format, places)", DrawFN("\pNum2PStr", X, 20), 20);
- PStrDraw(1, "\ptype - CINT, CLONG, CCOMP, CFLOAT, CSHORTDBL, CDBL", X, NL2);
- PStrDraw(1, "\pnumPtr - Address of a given type of number", X, NL1);
- PStrDraw(1, "\ps - Pascal string to recieve the string representation", X, NL1);
- PStrDraw(1, "\pformat - DEC or SCI (decimal or scientific notation)", X, NL1);
- PStrDraw(1, "\pplaces - Number of decimal places desired in representation", X, NL1);
- PStrDraw(1, "\pNum2PStr() creates a pascal string representation of a given", X, NL2);
- PStrDraw(1, "\ptype of number in either decimal or scientific notation.", X, NL1);
- a_double = -987654321.987654321;
- PStrDraw(1, "\pGiven: a_double == -987654321.987654321", X, NL2);
- PStrDraw(1, "\pCalling: Num2PStr(CDBL, &a_double, s1_Str255, DEC, 9);", X, NL1);
- Num2PStr(CDBL, &a_double, s1_Str255, DEC, 9);
- PStrDraw(3, "\pResults In: s1_Str255 == \"\\p", X, NL1, s1_Str255, CUR, CUR, "\p\"", CUR, CUR);
- Num2PStr(CDBL, &a_double, s1_Str255, SCI, 17);
- PStrDraw(1, "\pCalling: Num2PStr(CDBL, &a_double, s1_Str255, SCI, 17);", X, NL1);
- PStrDraw(3, "\pResults In: s1_Str255 == \"\\p", X, NL1, s1_Str255, CUR, CUR, "\p\"", CUR, CUR);
- break;
- case 5:
- PStrDraw(1, "\p(s, type, numPtr)", DrawFN("\pPStr2Num", X, 20), 20);
- PStrDraw(1, "\ps - Pascal string representation of a number", X, NL2);
- PStrDraw(1, "\ptype - CINT, CLONG, CCOMP, CFLOAT, CSHORTDBL, CDBL", X, NL1);
- PStrDraw(1, "\pnumPtr - Address of a given type of number", X, NL1);
- PStrDraw(1, "\pPStr2Num() sets a given type of number equal", X, NL2);
- PStrDraw(1, "\pto the value represented in the pascal string s.", X, NL1);
- PStrCopy("\p-123456789.987654321", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\p-123456789.987654321\"", X, NL2);
- PStrDraw(1, "\pCalling: PStr2Num(s1_Str255, CDBL, &a_double);", X, NL1);
- PStr2Num(s1_Str255, CDBL, &a_double);
- Num2PStr(CDBL, &a_double, s2_Str255, DEC, 9);
- PStrDraw(2, "\pResults In: a_double == ", X, NL1, s2_Str255, CUR, CUR);
- break;
- case 6:
- PStrDraw(1, "\p(src, pos, count, dst)", DrawFN("\pPStrCopy", X, 20), 20);
- PStrDraw(1, "\psrc - Source pascal string", X, NL2);
- PStrDraw(1, "\ppos - Character position in src to start copying", X, NL1);
- PStrDraw(1, "\pcount - Number of characters to copy", X, NL1);
- PStrDraw(1, "\pdst - Destination pascal string", X, NL1);
- PStrDraw(1, "\pPStrCopy() copies count characters from", X, NL2);
- PStrDraw(1, "\pcharacter position pos of src to dst.", X, NL1);
- PStrCopy("\pThis is a pascal string", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pThis is a pascal string\"", X, NL2);
- PStrDraw(1, "\pCalling: PStrCopy(s1_Str255, 1, ALL, s2_Str255);", X, NL1);
- PStrCopy(s1_Str255, 1, ALL, s2_Str255);
- PStrDraw(3, "\pResults In: s2_Str255 == \"\\p", X, NL1, s2_Str255, CUR, CUR, "\p\"", CUR, CUR);
- PStrDraw(1, "\pCalling: PStrCopy(s2_Str255, 11, 6, s1_Str255);", X, NL1);
- PStrCopy(s2_Str255, 11, 6, s1_Str255);
- PStrDraw(3, "\pResults In: s1_Str255 == \"\\p", X, NL1, s1_Str255, CUR, CUR, "\p\"", CUR, CUR);
- break;
- case 7:
- PStrDraw(1, "\p(count, dst, ...)", DrawFN("\pPStrCat", X, 20), 20);
- PStrDraw(1, "\pcount - Number of string arg. present INCLUDING dst", X, NL2);
- PStrDraw(1, "\pdst - Destination pascal string", X, NL1);
- PStrDraw(1, "\p... - 1-29 additional pascal string arguments", X, NL1);
- PStrDraw(1, "\pPStrCat() concatenates 1-29 additional pascal strings onto dst.", X, NL2);
- PStrCopy("\pThanks for", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pThanks for\"", X, NL2);
- PStrDraw(1, "\pCalling: PStrCat(3, s1_Str255, \"\\p the hot\", \"\\ptip!\");", X, NL1);
- PStrCat(3, s1_Str255, "\p the hot", "\p tip!");
- PStrDraw(3, "\pResults In: s1_Str255 == \"\\p", X, NL1, s1_Str255, CUR, CUR, "\p\"", CUR, CUR);
- break;
- case 8:
- PStrDraw(1, "\p(src, dst, pos)", DrawFN("\pPStrIns", X, 20), 20);
- PStrDraw(1, "\psrc - Pascal string to insert into dst", X, NL2);
- PStrDraw(1, "\pdst - Destination pascal string (recieves insertion)", X, NL1);
- PStrDraw(1, "\ppos - Character position of insertion in dst", X, NL1);
- PStrDraw(1, "\pPStrIns() inserts src at pos into dst.", X, NL2);
- PStrCopy("\pThat is nice.", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pThat is nice.\"", X, NL2);
- PStrDraw(1, "\pCalling: PStrIns(\"\\pvery \", s1_Str255, 9);", X, NL1);
- PStrIns("\pvery ", s1_Str255, 9);
- PStrDraw(3, "\pResults In: s1_Str255 == \"\\p", X, NL1, s1_Str255, CUR, CUR, "\p\"", CUR, CUR);
- break;
- case 9:
- PStrDraw(1, "\p(s, pos, count)", DrawFN("\pPStrDel", X, 20), 20);
- PStrDraw(1, "\ps - Pascal string recieving deletion", X, NL2);
- PStrDraw(1, "\ppos - Character position to start deleting", X, NL1);
- PStrDraw(1, "\pcount - Number of characters to be deleted", X, NL1);
- PStrDraw(1, "\pPStrDel() deletes count characters starting at pos from s.", X, NL2);
- PStrCopy("\pHe has not finished.", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pHe has not finished.\"", X, NL2);
- PStrDraw(1, "\pCalling: PStrDel(s1_Str255, 8, 4);", X, NL1);
- PStrDel(s1_Str255, 8, 4);;
- PStrDraw(3, "\pResults In: s1_Str255 == \"\\p", X, NL1, s1_Str255, CUR, CUR, "\p\"", CUR, CUR);
- break;
- case 10:
- PStrDraw(1, "\p(src, pos, count, dst)", DrawFN("\pPStrRep", X, 20), 20);
- PStrDraw(1, "\pdst - Pascal string recieving replacement", X, NL2);
- PStrDraw(1, "\ppos - Character position to start replacing", X, NL1);
- PStrDraw(1, "\pcount - Number of characters to replace", X, NL1);
- PStrDraw(1, "\psrc - Pascal string replacement", X, NL1);
- PStrDraw(1, "\pPStrRep() replaces count characters", X, NL2);
- PStrDraw(1, "\pstarting at pos in dst with src.", X, NL1);
- PStrCopy("\pJane ran home.", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pJane ran home.\"", X, NL2);
- PStrDraw(1, "\pCalling: PStrRep(s1_Str255, 6, 3, \"\\pwalked\");", X, NL1);
- PStrRep(s1_Str255, 6, 3, "\pwalked");
- PStrDraw(3, "\pResults In: s1_Str255 == \"\\p", X, NL1, s1_Str255, CUR, CUR, "\p\"", CUR, CUR);
- break;
- case 11:
- PStrDraw(1, "\p(s, len, c)", DrawFN("\pPStrFixLen", X, 20), 20);
- PStrDraw(1, "\ps - Pascal string", X, NL2);
- PStrDraw(1, "\plen - Desired length", X, NL1);
- PStrDraw(1, "\pc - Character used to pad to greater length", X, NL1);
- PStrDraw(1, "\pPStrFixLen() gaurantees that the length of s to", X, NL2);
- PStrDraw(1, "\pbe equal to len by chopping extra characters off", X, NL1);
- PStrDraw(1, "\por by padding-out with as many c's as neccessary.", X, NL1);
- PStrCopy("\pJohn Doe", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pJohn Doe\"", X, NL2);
- PStrDraw(1, "\pCalling: PStrFixLen(s1_Str255, 10, ' ');", X, NL1);
- PStrFixLen(s1_Str255, 10, ' ');
- PStrDraw(3, "\pResults In: s1_Str255 == \"\\p", X, NL1, s1_Str255, CUR, CUR, "\p\"", CUR, CUR);
- PStrDraw(1, "\pCalling: PStrFixLen(s1_Str255, 4, ' ');", X, NL1);
- PStrFixLen(s1_Str255, 4, ' ');
- PStrDraw(3, "\pResults In: s1_Str255 == \"\\p", X, NL1, s1_Str255, CUR, CUR, "\p\"", CUR, CUR);
- break;
- case 12:
- PStrDraw(1, "\p(p, t, pos)", DrawFN("\pPStrFind", X, 20), 20);
- PStrDraw(1, "\pp - Pascal string containing pattern to find.", X, NL2);
- PStrDraw(1, "\pt - Pascal string of text to search.", X, NL1);
- PStrDraw(1, "\ppos - Character position in t to start searching.", X, NL1);
- PStrDraw(1, "\pPStrFind() finds the first occurance of p in t.", X, NL2);
- PStrDraw(1, "\pIt returns the char.position found else zero.", X, NL1);
- PStrCopy("\pI am that I am.", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pI am that I am.\"", X, NL2);
- PStrDraw(1, "\pCalling: a_int = PStrFind(\"\\pam\", s1_Str255, 1);", X, NL1);
- a_int = PStrFind("\pam", s1_Str255, 1);
- Num2PStr(CINT, &a_int, s2_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s2_Str255, CUR, CUR);
- PStrDraw(1, "\pCalling: a_int = PStrFind(\"\\pam\", s1_Str255, 5);", X, NL1);
- a_int = PStrFind("\pam", s1_Str255, 5);
- Num2PStr(CINT, &a_int, s2_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s2_Str255, CUR, CUR);
- break;
- case 13:
- PStrDraw(1, "\p(s, c)", DrawFN("\pPStrFindFC", X, 20), 20);
- PStrDraw(1, "\ps - Pascal string to search", X, NL2);
- PStrDraw(1, "\pc - Character to find", X, NL1);
- PStrDraw(1, "\pPStrFindFC() finds the first occurance of c in s.", X, NL2);
- PStrDraw(1, "\pIt returns the char.position found else zero.", X, NL1);
- PStrCopy("\pabcdefg", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pabcdefg\"", X, NL2);
- PStrDraw(1, "\pCalling: a_int = PStrFindFC(s1_Str255, 'e');", X, NL1);
- a_int = PStrFindFC(s1_Str255, 'e');
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- break;
- case 14:
- PStrDraw(1, "\p(s, c)", DrawFN("\pPStrFindLC", X, 20), 20);
- PStrDraw(1, "\ps - Pascal string to search", X, NL2);
- PStrDraw(1, "\pc - Character to find", X, NL1);
- PStrDraw(1, "\pPStrFindFC() finds the last occurance of c in s.", X, NL2);
- PStrDraw(1, "\pIt returns the char.position found else zero.", X, NL1);
- PStrCopy("\pabcde abcde", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pabcde abcde\"", X, NL2);
- PStrDraw(1, "\pCalling: a_int = PStrFindLC(s1_Str255, 'b');", X, NL1);
- a_int = PStrFindLC(s1_Str255, 'b');
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- break;
- case 15:
- PStrDraw(1, "\p(s, set)", DrawFN("\pPStrFindFS", X, 20), 20);
- PStrDraw(1, "\ps - Pascal string to search", X, NL2);
- PStrDraw(1, "\pset - Pascal string considered as a set of characters", X, NL1);
- PStrDraw(1, "\pPStrFindFS() finds the first occurance in both s and set.", X, NL2);
- PStrDraw(1, "\pIt returns the char.position found else zero.", X, NL1);
- PStrCopy("\pThis works great!", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pThis works great!\"", X, NL2);
- PStrDraw(1, "\pCalling: a_int = PStrFindFS(s1_Str255, \"\\pabc\");", X, NL1);
- a_int = PStrFindFS(s1_Str255, "\pabc");
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- break;
- case 16:
- PStrDraw(1, "\p(s, set)", DrawFN("\pPStrFindLS", X, 20), 20);
- PStrDraw(1, "\ps - Pascal string to search", X, NL2);
- PStrDraw(1, "\pset - Pascal string considered as a set of characters", X, NL1);
- PStrDraw(1, "\pPStrFindLS() finds the last occurance in both s and set.", X, NL2);
- PStrDraw(1, "\pIt returns the char.position found else zero.", X, NL1);
- PStrCopy("\pPeace, Peace!", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pPeace, Peace!\"", X, NL2);
- PStrDraw(1, "\pCalling: a_int = PStrFindLS(s1_Str255, \"\\pabc\");", X, NL1);
- a_int = PStrFindLS(s1_Str255, "\pabc");
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- break;
- case 17:
- PStrDraw(1, "\p(s, set)", DrawFN("\pPStrFindFNS", X, 20), 20);
- PStrDraw(1, "\ps - Pascal string to search", X, NL2);
- PStrDraw(1, "\pset - Pascal string considered as a set of characters", X, NL1);
- PStrDraw(1, "\pPStrFindFNS() finds the first occurance NOT in both s and set.", X, NL2);
- PStrDraw(1, "\pIt returns the char.position found else zero.", X, NL1);
- PStrCopy("\pS.O.S., S.O.S", 1, ALL, s1_Str255);
- PStrDraw(1, "\pGiven: s1_Str255 == \"\\pS.O.S., S.O.S\"", X, NL2);
- PStrDraw(1, "\pCalling: a_int = PStrFindFNS(s1_Str255, \"\\pS.O\");", X, NL1);
- a_int = PStrFindFNS(s1_Str255, "\pS.O");
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- break;
- case 18:
- PStrDraw(1, "\p(s1, s2)", DrawFN("\pPStrCmp", X, 20), 20);
- PStrDraw(1, "\ps1 - Pascal string", X, NL2);
- PStrDraw(1, "\ps2 - Pascal string", X, NL1);
- PStrDraw(1, "\pPStrCmp() compares s1 to s2.", X, NL2);
- PStrDraw(1, "\pResult: <0 less than; ==0 equal; >0 greater than", X, NL1);
- PStrDraw(1, "\pCalling: a_int = PStrCmp(\"\\pABCD\", \"\\pABCE\");", X, NL2);
- a_int = PStrCmp("\pABCD", "\pABCE");
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- PStrDraw(1, "\pCalling: a_int = PStrCmp(\"\\pABCD\", \"\\pABCD\");", X, NL1);
- a_int = PStrCmp("\pABCD", "\pABCD");
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- PStrDraw(1, "\pCalling: a_int = PStrCmp(\"\\pABCDF\", \"\\pABCDE\");", X, NL1);
- a_int = PStrCmp("\pABCDF", "\pABCDE");
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- PStrDraw(1, "\pCalling: a_int = PStrCmp(\"\\pABC\", \"\\pABCD\");", X, NL1);
- a_int = PStrCmp("\pPStr 1", "\pPStr 12");
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(2, "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- break;
- case 19:
- PStrDraw(1, "\p(count, varLabel, varType, varPtr, ...)", DrawFN("\pShowVars", 8, 15), 15);
- PStrDraw(1, "\pcount - # of { varLabel, varType, varPtr } arg. sets to follow", 8, NL1);
- PStrDraw(1, "\pvarLabel - Pascal string used as variable's label", 8, NL1);
- PStrDraw(1, "\pvarType - Type of variable", 8, NL1);
- PStrDraw(1, "\pvarPtr - Variable's address", 8, NL1);
- PStrDraw(1, "\p... - 1-9 additional sets of { varLabel, varType, varPtr }", 8, NL1);
- PStrDraw(1, "\pShowVars() displays the label & value of 1-10 variables. It's a", 8, NL1);
- PStrDraw(1, "\pgreat run-time debugging tool! Here's an example calling sequence:", 8, NL1);
- TextFace(bold);
- PStrDraw(1, "\p<<< Click ShowVars Button To See Result >>>", CEN, NL1);
- TextFace(plain);
- PStrDraw(1, "\pShowVars(7, \"\\pa_Boolean\", BOOL, &a_Boolean,", 8, NL1);
- PStrDraw(1, "\p \"\\pa_int\", CINT, &a_int,", 8, NL1);
- PStrDraw(1, "\p \"\\pa_long\", CLONG, &a_long,", 8, NL1);
- PStrDraw(1, "\p \"\\pa_float\", CFLOAT, &a_float,", 8, NL1);
- PStrDraw(1, "\p \"\\pa_shortDbl\", CSHORTDBL, &a_shortDbl,", 8, NL1);
- PStrDraw(1, "\p \"\\pa_double\", CDBL, &a_double,", 8, NL1);
- PStrDraw(1, "\p \"\\pa_Str255\", PSTR, s1_Str255);", 8, NL1);
- break;
- case 20:
- SetFont(monaco, 9, plain);
- PStrDraw(1, "\pThe Following macros are defined in PStrLib.h: IsAlphaNum(c),", X, 20);
- PStrDraw(1, "\pIsAlpha(c), IsAscii(c), IsCntrl(c), IsCSym(c), IsCSymF(c),", X, NL1);
- PStrDraw(1, "\pIsDigit(c), IsGraph(c), IsOctDigit(c), IsPrint(c), IsPunct(c),", X, NL1);
- PStrDraw(1, "\pIsSpace(c) IsHexDigit(c). They all test character c for their", X, NL1);
- PStrDraw(1, "\prespective conditions returning 0 if FALSE else >0 TRUE. WARNING:", X, NL1);
- PStrDraw(1, "\pDon't use c's delcared as type char (see PStrLib.h for explanation)!", X, NL1);
- a_int = IsAlpha('a');
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(3, "\pExecuting: a_int = IsAlpha('a'); ", X, NL2,
- "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- a_int = IsAlpha('1');
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(3, "\pExecuting: a_int = IsAlpha('1');", X, NL1,
- "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- a_int = IsDigit('a');
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(3, "\pExecuting: a_int = IsDigit('a');", X, NL1,
- "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- a_int = IsDigit('1');
- Num2PStr(CINT, &a_int, s1_Str255, DEC, 0);
- PStrDraw(3, "\pExecuting: a_int = IsDigit('1');", X, NL1,
- "\pResults In: a_int == ", X, NL1, s1_Str255, CUR, CUR);
- break;
- }
- /* Draw the pageNo page in the userItem's display rect */
- Num2PStr(CINT, &pageNo, s2_Str255, DEC, 0);
- s1_Str255[0] = 0;
- PStrCat(3, s1_Str255, "\pPage ", s2_Str255);
- TextFont(newYork);
- TextSize(10);
- TextFace(bold);
- PStrDraw(1, s1_Str255, CEN, 230);
- }